/*****************************************************************************
* Copyright (C),Linter     - 2020   , 
* File name:  GhcResource.h
* Author: Andy Gao           Version: 1.0              Data:2019-10-10 09:19:52
* DESCRIPTION: 
* Others:
*****************************************************************************/
#ifndef _GhcResource_h_
#define _GhcResource_h_
  
/**************************************************/
#define GhcTrue			1
#define GhcFalse        0
#define GhcNull			0x00000000
#define GhcInvalid		0xffffffff
/**************************************************/
#define eGCM_32bpp		32
#define eGCM_16bpp		16  //Default
#define eGCM_8bpp		8
#define eGCM_4bpp		0x14
#define eGCM_2bpp		0x12
#define eGCM_1bpp		0x11
#define eGCM_YcNormal	2
#define eGCM_YcCapture	3
#define eGCM_RgbCapture	1
/**************************************************/
#define eGPT_Rgb555 	0
#define eGPT_Rgb565 	1  //Default
#define eGPT_Rgb666 	2
#define eGPT_Rgb888 	3
#define eGPT_Clut 		4
#define eGPT_Yuv422 	5
#define eGPT_Yuv444 	6
#define eGPT_Yuv555 	7
#define eGPT_Yuv655 	8
#define eGPT_Argb8888 	9
#define eGPT_Argb1555 	10
/**************************************************/
typedef struct SGhcObject 
{ 
    unsigned char*		pData;
}TGhcObject; 
/**************************************************/
typedef struct SGhcSprite 
{ 
    unsigned char*		pData;
}TGhcSprite; 
/**************************************************/
typedef struct SGhcMultiObject 
{ 
    	TGhcObject**		pObjectPtrArray;
}TGhcMultiObject; 
/**************************************************/
typedef struct SGhcMultiSprite 
{ 
    	TGhcObject**		pObjectPtrArray;
}TGhcMultiSprite; 
/**************************************************/
typedef struct SGhcSpriteList 
{ 
    	short x;
    	short y;	
    	unsigned short width;
    	unsigned short height;	
    	unsigned short numObjects;
    	unsigned char  eColorMode;	
    	unsigned char bAlphaBlending;
    	TGhcMultiObject** pObjectPtrArray;	
}TGhcSpriteList; 
/**************************************************/
typedef struct SGhcPalette 
{ 
    	unsigned char*		pPalette;
    	unsigned short		numEntries;
    	unsigned char	    eType;
}TGhcPalette; 
/**************************************************/
  
// g_spBoot_  
extern const      TGhcSpriteList                     g_spBoot_L4_Boot_L;  
extern const      TGhcSpriteList                     g_spBoot_L4_Boot_R;  
// g_spDAY_  
extern const      TGhcSpriteList                     g_spDAY_L4_DAY_BG_L565;  
extern const      TGhcSpriteList                     g_spDAY_L4_DAY_BG_R565;  
extern const      TGhcSpriteList                     g_spDAY_L4_DAYEngine_565_0;  
extern const      TGhcSpriteList                     g_spDAY_L4_DAYEngine_565_1;  
extern const      TGhcSpriteList                     g_spDAY_L4_DAYEngine_565_10;  
extern const      TGhcSpriteList                     g_spDAY_L4_DAYEngine_565_11;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYSpeed_A;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYSpeed_B;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYSpeed_C;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_8B_DAYFuel;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYSpeed_Unit;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_8B_DAYVoltage;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_8B_DAYVoltage_Icon;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYVoltage;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYVoltageA;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYVoltageB;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYVoltageC;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYVoltageDot;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_8B_DAYWater;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYWater;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYWaterA;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYWaterB;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYWaterC;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTIME;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTRIP_KM;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTIMEDot;  
extern const      TGhcSpriteList                     g_spDAY_L4_DAYABS565;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_8B_DAYWater_Icon;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_8B_DAYFuel_Icon;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_8B_DAYFuel_E;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_8B_DAYFuel_F;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYGear;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTRIP_A;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTRIP_B;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTRIP_C;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTRIP_D;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTRIPDot;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTRIP;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTOTAL_A;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTOTAL_B;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTOTAL_C;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTOTAL_D;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTOTAL_E;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTOTAL_F;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTOTAL;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTIMEA;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTIMEB;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTIMEC;  
extern const      TGhcSpriteList                     g_spDAY_L4_CLUT_4bDAYTIMED;  
extern const      TGhcSpriteList                     g_spDAY_L4_DAYEngine_565_2_9;  
// g_spDispaly_  
extern const      TGhcSpriteList                     g_spDispaly_L4_Dispaly_L_Ion565;  
extern const      TGhcSpriteList                     g_spDispaly_L4_Dispaly_R_Ion565;  
extern const      TGhcSpriteList                     g_spDispaly_L4_Palette4Frequency_GR_A;  
extern const      TGhcSpriteList                     g_spDispaly_L4_Palette4Frequency_SP_A;  
extern const      TGhcSpriteList                     g_spDispaly_L4_Palette4Frequency_SP_B;  
extern const      TGhcSpriteList                     g_spDispaly_L4_Palette4Frequency_SP_C;  
extern const      TGhcSpriteList                     g_spDispaly_L4_Palette4Frequency_SP_D;  
extern const      TGhcSpriteList                     g_spDispaly_L4_Palette4Frequency_SP_DOT;  
// g_spNight_  
extern const      TGhcSpriteList                     g_spNight_L4_NIT_BG_L;  
extern const      TGhcSpriteList                     g_spNight_L4_NIT_BG_R;  
extern const      TGhcSpriteList                     g_spNight_L4_NITEngine_0;  
extern const      TGhcSpriteList                     g_spNight_L4_NITEngine_1;  
extern const      TGhcSpriteList                     g_spNight_L4_NITEngine_10;  
extern const      TGhcSpriteList                     g_spNight_L4_NITEngine_11;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITSpeed_A;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITSpeed_B;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITSpeed_C;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITSpeed_Unit;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8B_NITVoltage;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8B_NITVoltage_Icon;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITVoltage_V;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITVoltage_A;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITVoltage_B;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITVoltage_C;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITVoltage_Dot;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8B_NITWater;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITWater;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8B_NITWater_Icon;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITWater_A;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITWater_B;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITWater_C;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTIME_AM;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTIME_Dot;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTIME_A;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTIME_B;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTIME_C;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTIME_D;  
extern const      TGhcSpriteList                     g_spNight_L4_NITTOTAL_Icon565;  
extern const      TGhcSpriteList                     g_spNight_L4_NITTRIP_Icon565;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTRIP_KM;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTRIP_A;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTRIP_B;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTRIP_C;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTRIP_D;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTRIP_Dot;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTOTAL_B;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTOTAL_C;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTOTAL_D;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTOTAL_E;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTOTAL_F;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8BNITGear;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8B_NITFuel;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8B_NITFuel_E;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8B_NITFuel_F;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_8B_NITFuel_Icon;  
extern const      TGhcSpriteList                     g_spNight_L4_NITLED_ABS;  
extern const      TGhcSpriteList                     g_spNight_L4_CLUT_4bbNITTOTAL_A;  
extern const      TGhcSpriteList                     g_spNight_L4_NITEngine_2_9;  
// g_spPASS_  
extern const      TGhcSpriteList                     g_spPASS_L4_Palette4PassB;  
extern const      TGhcSpriteList                     g_spPASS_L4_Palette4Passeord_A;  
extern const      TGhcSpriteList                     g_spPASS_L4_Palette4Passeord_B;  
extern const      TGhcSpriteList                     g_spPASS_L4_Palette4Passeord_C;  
// g_spRotate_  
extern const      TGhcSpriteList                     g_spRotate_L4_Rotate_Ion565_L;  
extern const      TGhcSpriteList                     g_spRotate_L4_Rotate_Ion565_R;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_PL;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_Num;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_FRe_A;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_FRe_B;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_FRe_C;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_FRe_D;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_V_A;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_V_B;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_V_C;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_V_DOT;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_V;  
extern const      TGhcSpriteList                     g_spRotate_L4_Palette4Rotate_FRe_DOT;  
// Color Palette Resource
extern const      TGhcPalette                     g_rsPalette_CLUT4b;  
extern const      TGhcPalette                     g_rsPalette_CLUT8BDAY;  
extern const      TGhcPalette                     g_rsPalette_CLUT8BNight;  
extern const      TGhcPalette                     g_rsPalette_CLUT_4bb;  
extern const      TGhcPalette                     g_rsPalette_Palette4;  
  
#endif
